class Word {
  constructor(res) { // 初始化
    this.originalWord = null // 原始题库
    this.currentTiku = 0 // 当前题库编号
    this.currentTimu = 0 // 当前题目编号
    this.tiku = [  // 分类题库
      [],  // 随机题库
      [],  // 简单难度题库
      [],  // 适中难度题库
      [],  // 困难难度题库
      [],  // 年轻人题库
      [],  // 普通题库
      [],  // 成语题库
      [],  // 非成语题库
    ]
    res.sort(function(){ return 0.5 - Math.random() })  // 打乱数组
    this.originalWord = Array.from(res)
    this.tiku[0] = Array.from(res)
    this.setTiku(res)
  }
  setTiku(res) {
    res.sort(function(){ return 0.5 - Math.random() })  // 打乱数组
    for(let i=0,len=res.length;i<len;i++) {
      if(res[i].hard == 1 || res[i].hard == 2) { this.tiku[1].push(res[i]) }
      if(res[i].hard == 3) { this.tiku[2].push(res[i]) }
      if(res[i].hard == 4 || res[i].hard == 5) { this.tiku[3].push(res[i]) }
      if(res[i].applyAge == 1) { this.tiku[4].push(res[i]) }
      if(res[i].applyAge == 0 || res[i].applyAge == 2) { this.tiku[5].push(res[i]) }
      if(res[i].isIdiom == 1) { this.tiku[6].push(res[i]) }
      if(res[i].isIdiom == 0) { this.tiku[7].push(res[i]) }
    }
  }
  resetTiku() {
    let res = this.originalWord
    res.sort(function(){ return 0.5 - Math.random() })  // 打乱数组
    for(let i=1;i<this.tiku.length;i++) {
      this.tiku[i] = []
    }
    this.tiku[0] = Array.from(res)
    this.setTiku(res)
    this.currentTiku = 0
    this.currentTimu = 0
  }
  getCurrentTikuLen() {
    return this.tiku[this.currentTiku].length
  }
  randomTiku() { // 打乱当前题库
    this.tiku[this.currentTiku].sort(function(){ return 0.5 - Math.random() })
  }
  setTikuNum(i) {
    this.currentTiku = i
  }
  setTimuNum(i) {
    this.currentTimu = i
  }
  getCurrentWord() {
    if(this.currentTimu >= this.tiku[this.currentTiku].length) {
      this.randomTiku()
      this.setTimuNum(0)
    }
    if(this.tiku[this.currentTiku].length < 1) {
      return '题库已无题目'
    }
    return this.tiku[this.currentTiku][this.currentTimu].title
  }
  /** 答对题目，从对应题库中删除被答对的题目
   *  @tikuNum 题库编号
   *  @tikuNum 题目编号
   */
  correctWord() { 
    this.tiku[this.currentTiku].splice(this.currentTimu, 1)
  }
  /** 跳过，下一题 */
  nextWord() {
    this.currentTimu++
  }
};
export default Word